home *** CD-ROM | disk | FTP | other *** search
- package Code.FIELD.contacts
- {
- import Box2D.Collision.Shapes._bs125;
- import Box2D.Collision.Shapes._mo808;
- import Box2D.Common.Math.b2Vec2;
- import Box2D.Dynamics._th791;
- import Code.FIELD._pn539;
- import Code.FIELD.body._kc461;
- import Code.LIB._gr318;
-
- public class _rr109 extends _lf150
- {
- private var iBlockRad:Number;
-
- public function _rr109(param1:_pn539)
- {
- var _loc2_:Number = NaN;
- var _loc3_:Number = NaN;
- super(param1);
- _loc2_ = iWorld.iSize / iWorld.PS;
- _loc3_ = Math.pow(_loc2_,2);
- iBlockRad = Math.sqrt(_loc3_ + _loc3_);
- }
-
- private function _qa296(param1:_kc461) : void
- {
- var _loc2_:Array = null;
- var _loc3_:int = 0;
- var _loc4_:Number = NaN;
- var _loc5_:Array = null;
- _loc2_ = _bs125(param1.iB2Shape)._fh374();
- _loc3_ = _bs125(param1.iB2Shape)._px512();
- _loc4_ = 0.5 / iWorld.PS;
- _loc5_ = param1.iVertexes;
- b2Vec2(_loc5_[0]).x = b2Vec2(_loc2_[0]).x - _loc4_;
- b2Vec2(_loc5_[0]).y = b2Vec2(_loc2_[0]).y - _loc4_;
- b2Vec2(_loc5_[1]).x = b2Vec2(_loc2_[1]).x + _loc4_;
- b2Vec2(_loc5_[1]).y = b2Vec2(_loc2_[1]).y - _loc4_;
- b2Vec2(_loc5_[2]).x = b2Vec2(_loc2_[2]).x + _loc4_;
- b2Vec2(_loc5_[2]).y = b2Vec2(_loc2_[2]).y + _loc4_;
- b2Vec2(_loc5_[3]).x = b2Vec2(_loc2_[3]).x - _loc4_;
- b2Vec2(_loc5_[3]).y = b2Vec2(_loc2_[3]).y + _loc4_;
- param1.iBody.iB2Body._ja306(b2Vec2(_loc5_[0]),b2Vec2(_loc5_[0]));
- param1.iBody.iB2Body._ja306(b2Vec2(_loc5_[1]),b2Vec2(_loc5_[1]));
- param1.iBody.iB2Body._ja306(b2Vec2(_loc5_[2]),b2Vec2(_loc5_[2]));
- param1.iBody.iB2Body._ja306(b2Vec2(_loc5_[3]),b2Vec2(_loc5_[3]));
- param1.iFringes[0][0] = _loc5_[0];
- param1.iFringes[0][1] = _loc5_[1];
- param1.iFringes[1][0] = _loc5_[1];
- param1.iFringes[1][1] = _loc5_[2];
- param1.iFringes[2][0] = _loc5_[2];
- param1.iFringes[2][1] = _loc5_[3];
- param1.iFringes[3][0] = _loc5_[3];
- param1.iFringes[3][1] = _loc5_[0];
- }
-
- override public function _nu423() : void
- {
- var _loc1_:int = 0;
- _loc1_ = 0;
- while(_loc1_ < iShapes.length)
- {
- _kc461(iShapes[_loc1_]).iContacts = new Array();
- if(_kc461(iShapes[_loc1_]).iContactable)
- {
- _qa296(iShapes[_loc1_]);
- }
- _loc1_++;
- }
- }
-
- override public function _om383(param1:_kc461) : void
- {
- var _loc2_:b2Vec2 = null;
- var _loc3_:b2Vec2 = null;
- var _loc4_:_kc461 = null;
- var _loc5_:int = 0;
- var _loc6_:_kc461 = null;
- var _loc7_:_th791 = null;
- var _loc8_:_th791 = null;
- var _loc9_:Number = NaN;
- var _loc10_:Boolean = false;
- var _loc11_:_mf668 = null;
- if(!param1.iContactable)
- {
- return;
- }
- _loc2_ = new b2Vec2();
- _loc3_ = new b2Vec2();
- _loc4_ = param1;
- _loc5_ = 0;
- while(_loc5_ < iShapes.length)
- {
- if(!(_loc4_ == iWorld.iShapes[_loc5_] || !_kc461(iWorld.iShapes[_loc5_]).iContactable))
- {
- _loc6_ = iWorld.iShapes[_loc5_];
- if(_loc4_._tg276(_loc6_) < 0)
- {
- _loc7_ = _loc4_.iB2Shape.m_body;
- _loc8_ = _loc6_.iB2Shape.m_body;
- _loc4_.iBody.iB2Body._ja306(_mo808(_loc4_.iShapeDef).iCenter,_loc2_);
- _loc6_.iBody.iB2Body._ja306(_mo808(_loc6_.iShapeDef).iCenter,_loc3_);
- _loc9_ = (_loc2_.x - _loc3_.x) * (_loc2_.x - _loc3_.x) + (_loc2_.y - _loc3_.y) * (_loc2_.y - _loc3_.y);
- if(_loc9_ <= iBlockRad * 2 * 0.97 * (iBlockRad * 2 * 0.97))
- {
- _loc10_ = _gr318._gm72(_loc4_.iFringes,_loc6_.iFringes);
- if(_loc10_)
- {
- _loc11_ = new _mf668(_loc4_,_loc6_);
- _loc4_._rm474(_loc11_);
- }
- }
- }
- }
- _loc5_++;
- }
- }
- }
- }
-
-